﻿/**********************************************************************
 * @file   SEAAreaLeakDialog.h
 * @brief  面连接渗透对话框
 * @author BaGuijun (baguijun@163.com)
 * @date   2024-11-15
 *********************************************************************/
#ifndef _SEAAreaLeakDialog_H
#define _SEAAreaLeakDialog_H

#include "GUIJunctionDialogAPI.h"
#include "GUIWidget/GUIDialogBase.h"
#include "FITK_Component/FITKAcousticsModel/FITKSEAJunctionArea.h"

namespace Ui {
    class SEAAreaLeakDialog;
}

namespace GUI
{
    /**
     * @brief  面连接渗透对话框
     * @author BaGuijun (baguijun@163.com)
     * @date   2024-11-15
     */
    class GUIJunctionDialogAPI SEAAreaLeakDialog :public GUIDialogBase
    {
        Q_OBJECT;
    public:
        /**
         * @brief    构造函数
         * @param[i] leaks          渗透信息
         * @param[i] parent         父对象
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        SEAAreaLeakDialog(Acoustics::FITKSEAJunAreaLeakStr leaks, QWidget* parent = nullptr);
        /**
         * @brief    析构函数
         * @return   void
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        ~SEAAreaLeakDialog();
        /**
         * @brief    获取渗透数据
         * @return   Acoustics::FITKSEAJunAreaLeakStr
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        Acoustics::FITKSEAJunAreaLeakStr getData();
    private slots:
        ;
        /**
         * @brief    OK按钮点击事件
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-13
         */
        void on_pushButton_Ok_clicked();
        /**
         * @brief    取消按钮点击事件
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-13
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief    类型选择事件
         * @param[i] index   索引
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        void on_comboBox_LeakType_currentIndexChanged(int index);
    private:
        /**
         * @brief    将数据对象中的数据填充至界面
         * @param[i] leakinfo 
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        void setDataToWidget(Acoustics::FITKSEAJunAreaLeakStr leakinfo);
        /**
         * @brief    将界面数据填充至数据对象中
         * @return   Acoustics::FITKSEAJunAreaLeakStr
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-11-15
         */
        Acoustics::FITKSEAJunAreaLeakStr getDataFromWidget();
    private:
        /**
         * @brief  ui
         * @author BaGuijun (baguijun@163.com)
         * @date   2024-11-15
         */
        Ui::SEAAreaLeakDialog* _ui = nullptr;
        /**
         * @brief  渗透信息
         * @author BaGuijun (baguijun@163.com)
         * @date   2024-11-15
         */
        Acoustics::FITKSEAJunAreaLeakStr _leakInfo;
    };
}
#endif
